home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / perl / perlkit / readme.1st < prev    next >
Text File  |  1990-11-19  |  5KB  |  112 lines

  1. This is the executable for Larry Wall's perl program, ported to MS-DOS.
  2. This version is based on patch level 41, but has a number of extensions
  3. beyond that.  These extensions have been sent to the author, and will
  4. appear in future patches.  Stay tuned to USENET comp.lang.perl.
  5.  
  6. This was compiled with Microsoft C 6.0 and optimized for space:
  7. -Oegcilsza -Gs was used.  It has been tested with MS-DOS 3.3 and 4.01
  8. on a 80386 and a 80286, but it should work even on an 8088 and with
  9. DOS 2.x.  (But it will be slow.)  You will probably need 640K to
  10. get anything done.
  11.  
  12. Perl was originally ported to MS-DOS by Diomidis Spinellis in March, 1990.
  13. That code came out at patch level 18 and has undergone only minor changes
  14. through patch level 41.
  15.  
  16. Perl, complete with manuals and all source code, can be obtained by
  17. anonymous ftp from
  18.     jpl-devvax.jpl.nasa.gov (128.149.1.143).
  19.  
  20. --
  21. Len Reed
  22. gatech!holos0!lbr
  23. November 19, 1990
  24.  
  25. -------------------
  26.  
  27. Enhancements in this code that are not in patch level 41.
  28.  
  29. 1) Perl.exe will swap itself to disk (ideally a RAM disk in extended memory)
  30.    when running subprocesses.  This applies to the -P subprocess and to
  31.    pipe subprocesses and "system" subprocesses.  This recovers all but about
  32.    two K-bytes of the over 300K that perl.exe uses.  See README.env for
  33.    how to control swapping.
  34.  
  35. 2) MKS (Mortice Kern Systems) toolkit compatibility.  Perl will accept the
  36.    extended argument list (8 K-byte or more of pre-globbed arugments) from
  37.    the MKS Korn shell, and can pass extended argument lists to subprocesses.
  38.    This is upwardly compatible from the normal 128 byte DOS conventions, and
  39.    can be disabled.  Refer to README.env.
  40.  
  41. 3) Subprocesses now return the proper Unix-like exit status as documented
  42.    for the system and close (a pipe) commands.
  43.  
  44. 4) As in Unix, subprocesses inherit only handles 0, 1, and 2.  (DOS 2.x
  45.    subprocesses inherit all handles.)
  46.  
  47. 5) -P now works, at least with Microsoft C 6.0.  Perl runs a perl subprocess
  48.     with script doscpp.pl.  Editing this script may allow it to work for
  49.     other compilers.
  50.  
  51. 6)  The chdir command has been enhanced (by Tom Dinger) to allow changing the
  52.     current drive and/or the current directory.  Examples:
  53.     chdir "/abc";        # change to /abc on current drive
  54.     chdir "a:";        # change default drive to A:
  55.     chdir "a:/xyz";        # change default drive to A:, then chdir to /xyz
  56.     chdir "a:qrs";        # change default drive to A:, then chdir to
  57.                 # subdirectory QRS of the current A: directory
  58.  
  59.     MKS Korn shell users should note that the semantics of the Korn shell
  60.     chdir are a little different.  Changing drives in perl does not, as in
  61.     the ksh, return you to the root of the new drive.
  62.  
  63. 7)  The -i (edit in place) option now uses the renaming techniques in
  64.     os2/suffix.c
  65.  
  66. 8)  Globbing of incoming arguments now uses the Microsoft setargv code.
  67.     Globbing is MS-DOS, not Unix, style, so that *.* matches everything.
  68.     Only double, not single, quotes are supported, but you can put a quote
  69.     inside quotes by escaping it:  perl -e "print \"hello, world\n\";"
  70.     (MKS Korn shell users use the full Unix-like syntax, of course.)
  71.  
  72. 9)  Control of temporary files and scripts is under environmental control
  73.     so that the executable can be moved from system to system without
  74.     recompiling.  See README.env.
  75.  
  76. 10) Signal handling and temporary file manipulation are married so that
  77.     the temporary files are deleted whenever perl exits.
  78.  
  79. 11) The Korn shell is used to expand expressions like <*.c> if it is present.
  80.     If it is not present, perlglob.exe is used as in patch level 18.  (But
  81.     note the name change from earlier versions where it was glob.exe.)
  82.  
  83. 12) Various bug fixes and minor enhancements:  -w now works, opendir will
  84.     now fail when it should, random numbers now work, etc.
  85.  
  86.  
  87. Acute Problems
  88. ---------------
  89.  
  90. 1)  The perl exec command (not system, but exec) needs work.  It is not
  91.     MKS compatible and may not work at all under some systems.  It may
  92.     leave temporary files stranded.
  93.  
  94. 2)  Perl.exe uses 300 K-bytes before it even calls malloc.  It probably should
  95.     be made to use overlays and certainly has to be made smaller.
  96.  
  97.  
  98. Desirable Enhancements
  99. ----------------------
  100.  
  101. 1)  Using gdbm.
  102.  
  103. 2)  Use of the 64-K high memory area.
  104.  
  105. 3)  User-controllable use of extended memory.
  106.  
  107. 4)  Porting to Turbo C and Unix-dos cross compilers.  (This version works
  108.     only with Microsoft C 5.x and 6.0.)
  109.  
  110. Anyone interested in working on perl.exe or with ideas for DOS perl should
  111. write Len Reed at gatech!holos0!lbr.
  112.